package cn.com.dcsgo.service;

import cn.com.dcsgo.model.order.CartInfo;

import java.util.List;

/**
 * CartController
 *
 * @author Dcsgo
 * @since 2025/5/9 10:01
 */

public interface CartService {
    /**
     * 添加商品
     *
     * @param userId userId
     * @param skuId  skuId
     * @param skuNum 商品数量
     */
    void addItem(Long userId, Long skuId, Integer skuNum);

    /**
     * 删除指定用户购物车中的指定商品
     *
     * @param userId userId
     * @param skuId  skuId
     */
    void removeItem(Long userId, Long skuId);

    /**
     * 批量删除指定用户购物车中的商品
     *
     * @param userId    userId
     * @param skuIdList skuIdList
     */
    void removeItem(Long userId, List<Long> skuIdList);

    /**
     * 清空指定用户的购物车
     *
     * @param userId userId
     */
    void clear(Long userId);

    /**
     * 获取指定用户的购物车中的所有商品
     *
     * @param userId userId
     * @return 所有商品信息
     */
    List<CartInfo> getItems(Long userId);
}
